<!doctype html>
<html class="default no-js">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>&quot;cToken&quot; | Compound.js - v0.1.2</title>
	<meta name="description" content="Documentation for Compound.js - v0.1.2">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
	<div class="tsd-page-toolbar">
		<div class="container">
			<div class="table-wrap">
				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
					<div class="field">
						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
						<input id="tsd-search-field" type="text" />
					</div>
					<ul class="results">
						<li class="state loading">Preparing search index...</li>
						<li class="state failure">The search index is not available</li>
					</ul>
					<a href="../index.html" class="title">Compound.js - v0.1.2</a>
				</div>
				<div class="table-cell" id="tsd-widgets">
					<div id="tsd-filter">
						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
						<div class="tsd-filter-group">
							<div class="tsd-select" id="tsd-filter-visibility">
								<span class="tsd-select-label">All</span>
								<ul class="tsd-select-list">
									<li data-value="public">Public</li>
									<li data-value="protected">Public/Protected</li>
									<li data-value="private" class="selected">All</li>
								</ul>
							</div>
							<input type="checkbox" id="tsd-filter-inherited" checked />
							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
							<input type="checkbox" id="tsd-filter-only-exported" />
							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
						</div>
					</div>
					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
				</div>
			</div>
		</div>
	</div>
	<div class="tsd-page-title">
		<div class="container">
			<ul class="tsd-breadcrumb">
				<li>
					<a href="../globals.html">Globals</a>
				</li>
				<li>
					<a href="_ctoken_.html">&quot;cToken&quot;</a>
				</li>
			</ul>
			<h1>Module &quot;cToken&quot;</h1>
		</div>
	</div>
</header>
<div class="container container-main">
	<div class="row">
		<div class="col-8 col-content">
			<section class="tsd-panel-group tsd-index-group">
				<h2>Index</h2>
				<section class="tsd-panel tsd-index-panel">
					<div class="tsd-index-content">
						<section class="tsd-index-section ">
							<h3>Functions</h3>
							<ul class="tsd-index-list">
								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_ctoken_.html#borrow" class="tsd-kind-icon">borrow</a></li>
								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_ctoken_.html#redeem" class="tsd-kind-icon">redeem</a></li>
								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_ctoken_.html#repayborrow" class="tsd-kind-icon">repay<wbr>Borrow</a></li>
								<li class="tsd-kind-function tsd-parent-kind-module"><a href="_ctoken_.html#supply" class="tsd-kind-icon">supply</a></li>
							</ul>
						</section>
					</div>
				</section>
			</section>
			<section class="tsd-panel-group tsd-member-group ">
				<h2>Functions</h2>
				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
					<a name="borrow" class="tsd-anchor"></a>
					<h3>borrow</h3>
					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
						<li class="tsd-signature tsd-kind-icon">borrow<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/compound-finance/compound-js/blob/0b4de92/src/cToken.ts#L224">cToken.ts:224</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Borrows an Ethereum asset from the Compound Protocol for the user. The user&#39;s
										address must first have supplied collateral and entered a corresponding
									market.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre><code><span class="hljs-keyword">const</span> compound = <span class="hljs-keyword">new</span> Compound(<span class="hljs-built_in">window</span>.ethereum);

(<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{

  <span class="hljs-keyword">const</span> daiScaledUp = <span class="hljs-string">&#x27;32000000000000000000&#x27;</span>;
  <span class="hljs-keyword">const</span> trxOptions = { <span class="hljs-attr">mantissa</span>: <span class="hljs-literal">true</span> };

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Borrowing 32 Dai...&#x27;</span>);
  <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> compound.borrow(Compound.DAI, daiScaledUp, trxOptions);

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx);

})().catch(<span class="hljs-built_in">console</span>.error);</code></pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>asset: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string of the asset to borrow (must be a supported
										underlying asset).</p>
									</div>
								</li>
								<li>
									<h5>amount: <span class="tsd-signature-type">any</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string, number, or BigNumber
											object of the amount of an asset to borrow. Use the <code>mantissa</code> boolean in
											the <code>options</code> parameter to indicate if this value is scaled up (so there
										are no decimals) or in its natural scale.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns an Ethers.js transaction object of the borrow
							transaction.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
					<a name="redeem" class="tsd-anchor"></a>
					<h3>redeem</h3>
					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
						<li class="tsd-signature tsd-kind-icon">redeem<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/compound-finance/compound-js/blob/0b4de92/src/cToken.ts#L144">cToken.ts:144</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Redeems the user&#39;s Ethereum asset from the Compound Protocol.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre><code><span class="hljs-keyword">const</span> compound = <span class="hljs-keyword">new</span> Compound(<span class="hljs-built_in">window</span>.ethereum);

(<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Redeeming ETH...&#x27;</span>);
  <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> compound.redeem(Compound.ETH, <span class="hljs-number">1</span>); <span class="hljs-comment">// also accepts cToken args</span>
  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx);

})().catch(<span class="hljs-built_in">console</span>.error);</code></pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>asset: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string of the asset to redeem, or its cToken name.</p>
									</div>
								</li>
								<li>
									<h5>amount: <span class="tsd-signature-type">any</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string, number, or BigNumber
											object of the amount of an asset to redeem. Use the <code>mantissa</code> boolean in
											the <code>options</code> parameter to indicate if this value is scaled up (so there
											are no decimals) or in its natural scale. This can be an amount of
										cTokens or underlying asset (use the <code>asset</code> parameter to specify).</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns an Ethers.js transaction object of the redeem
							transaction.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
					<a name="repayborrow" class="tsd-anchor"></a>
					<h3>repay<wbr>Borrow</h3>
					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
						<li class="tsd-signature tsd-kind-icon">repay<wbr>Borrow<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, borrower<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/compound-finance/compound-js/blob/0b4de92/src/cToken.ts#L292">cToken.ts:292</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Repays a borrowed Ethereum asset for the user or on behalf of another
									Ethereum address.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre><code><span class="hljs-keyword">const</span> compound = <span class="hljs-keyword">new</span> Compound(<span class="hljs-built_in">window</span>.ethereum);

(<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Repaying Dai borrow...&#x27;</span>);
  <span class="hljs-keyword">const</span> address = <span class="hljs-literal">null</span>; <span class="hljs-comment">// set this to any address to repayBorrowBehalf</span>
  <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> compound.repayBorrow(Compound.DAI, <span class="hljs-number">32</span>, address);

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx);

})().catch(<span class="hljs-built_in">console</span>.error);</code></pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>asset: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string of the asset that was borrowed (must be a
										supported underlying asset).</p>
									</div>
								</li>
								<li>
									<h5>amount: <span class="tsd-signature-type">any</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string, number, or BigNumber
											object of the amount of an asset to borrow. Use the <code>mantissa</code> boolean in
											the <code>options</code> parameter to indicate if this value is scaled up (so there
										are no decimals) or in its natural scale.</p>
									</div>
								</li>
								<li>
									<h5>borrower: <span class="tsd-signature-type">string</span></h5>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns an Ethers.js transaction object of the repayBorrow
							or repayBorrowBehalf transaction.</p>
						</li>
					</ul>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module">
					<a name="supply" class="tsd-anchor"></a>
					<h3>supply</h3>
					<ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module">
						<li class="tsd-signature tsd-kind-icon">supply<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, noApprove<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
					</ul>
					<ul class="tsd-descriptions">
						<li class="tsd-description">
							<aside class="tsd-sources">
								<ul>
									<li>Defined in <a href="https://github.com/compound-finance/compound-js/blob/0b4de92/src/cToken.ts#L46">cToken.ts:46</a></li>
								</ul>
							</aside>
							<div class="tsd-comment tsd-typography">
								<div class="lead">
									<p>Supplies the user&#39;s Ethereum asset to the Compound Protocol.</p>
								</div>
								<dl class="tsd-comment-tags">
									<dt>example</dt>
									<dd><pre><code><span class="hljs-keyword">const</span> compound = <span class="hljs-keyword">new</span> Compound(<span class="hljs-built_in">window</span>.ethereum);

<span class="hljs-comment">// Ethers.js overrides are an optional 3rd parameter for `supply`</span>
<span class="hljs-comment">// const trxOptions = { gasLimit: 250000, mantissa: false };</span>

(<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{

  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Supplying ETH to the Compound Protocol...&#x27;</span>);
  <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> compound.supply(Compound.ETH, <span class="hljs-number">1</span>);
  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx);

})().catch(<span class="hljs-built_in">console</span>.error);</code></pre>
									</dd>
								</dl>
							</div>
							<h4 class="tsd-parameters-title">Parameters</h4>
							<ul class="tsd-parameters">
								<li>
									<h5>asset: <span class="tsd-signature-type">string</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string of the asset to supply.</p>
									</div>
								</li>
								<li>
									<h5>amount: <span class="tsd-signature-type">any</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>A string, number, or BigNumber
											object of the amount of an asset to supply. Use the <code>mantissa</code> boolean in
											the <code>options</code> parameter to indicate if this value is scaled up (so there
										are no decimals) or in its natural scale.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> noApprove: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5>
									<div class="tsd-comment tsd-typography">
										<p>Explicitly prevent this method from attempting an
										ERC-20 <code>approve</code> transaction prior to sending the <code>mint</code> transaction.</p>
									</div>
								</li>
								<li>
									<h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></h5>
								</li>
							</ul>
							<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
							<p>Returns an Ethers.js transaction object of the supply
							transaction.</p>
						</li>
					</ul>
				</section>
			</section>
		</div>
		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
			<nav class="tsd-navigation primary">
				<ul>
					<li class="globals  ">
						<a href="../globals.html"><em>Globals</em></a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_api_.html">&quot;api&quot;</a>
					</li>
					<li class="current tsd-kind-module">
						<a href="_ctoken_.html">&quot;c<wbr>Token&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_comp_.html">&quot;comp&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_comptroller_.html">&quot;comptroller&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_eth_.html">&quot;eth&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_gov_.html">&quot;gov&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_index_.html">&quot;index&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_pricefeed_.html">&quot;price<wbr>Feed&quot;</a>
					</li>
					<li class=" tsd-kind-module">
						<a href="_util_.html">&quot;util&quot;</a>
					</li>
				</ul>
			</nav>
			<nav class="tsd-navigation secondary menu-sticky">
				<ul class="before-current">
					<li class=" tsd-kind-function tsd-parent-kind-module">
						<a href="_ctoken_.html#borrow" class="tsd-kind-icon">borrow</a>
					</li>
					<li class=" tsd-kind-function tsd-parent-kind-module">
						<a href="_ctoken_.html#redeem" class="tsd-kind-icon">redeem</a>
					</li>
					<li class=" tsd-kind-function tsd-parent-kind-module">
						<a href="_ctoken_.html#repayborrow" class="tsd-kind-icon">repay<wbr>Borrow</a>
					</li>
					<li class=" tsd-kind-function tsd-parent-kind-module">
						<a href="_ctoken_.html#supply" class="tsd-kind-icon">supply</a>
					</li>
				</ul>
			</nav>
		</div>
	</div>
</div>
<footer>
	<div class="container">
		<h2>Legend</h2>
		<div class="tsd-legend-group">
			<ul class="tsd-legend">
				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
			</ul>
		</div>
	</div>
</footer>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>